package com.salelogistics.sale.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.salelogistics.common.core.annotation.Excel;
import com.salelogistics.common.core.web.domain.BaseEntity;

/**
 * 月配送计划详细货物对象 sms_delivery_plan_details
 *
 * @author Hu Kangying
 * @date 2023-07-13
 */
public class SmsDeliveryPlanDetails extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    private Long id;

    /**
     * 材料名称
     */
    @Excel(name = "材料名称")
    private Long materialId;

    /**
     * 所属计划ID
     */
    @Excel(name = "所属计划ID")
    private Long planId;

    /**
     * 计划数量
     */
    @Excel(name = "计划数量")
    private BigDecimal planQuantity;

    /**
     * 已完成批次
     */
    @Excel(name = "已完成批次")
    private BigDecimal completedCount;

    /**
     * 可分解数量
     */
    @Excel(name = "可分解数量")
    private BigDecimal decomposableCount;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    private Long editedBy;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date editedTime;

    /**
     * 删除状态
     */
    @Excel(name = "删除状态")
    private Long isDeleted;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String note;

    public SmsDeliveryPlanDetails(){}

    public SmsDeliveryPlanDetails(Long planId){
        this.planId = planId;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setMaterialId(Long materialId) {
        this.materialId = materialId;
    }

    public Long getMaterialId() {
        return materialId;
    }

    public void setPlanId(Long planId) {
        this.planId = planId;
    }

    public Long getPlanId() {
        return planId;
    }

    public void setPlanQuantity(BigDecimal planQuantity) {
        this.planQuantity = planQuantity;
    }

    public BigDecimal getPlanQuantity() {
        return planQuantity;
    }

    public void setCompletedCount(BigDecimal completedCount) {
        this.completedCount = completedCount;
    }

    public BigDecimal getCompletedCount() {
        return completedCount;
    }

    public void setDecomposableCount(BigDecimal decomposableCount) {
        this.decomposableCount = decomposableCount;
    }

    public BigDecimal getDecomposableCount() {
        return decomposableCount;
    }

    public void setEditedBy(Long editedBy) {
        this.editedBy = editedBy;
    }

    public Long getEditedBy() {
        return editedBy;
    }

    public void setEditedTime(Date editedTime) {
        this.editedTime = editedTime;
    }

    public Date getEditedTime() {
        return editedTime;
    }

    public void setIsDeleted(Long isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Long getIsDeleted() {
        return isDeleted;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getNote() {
        return note;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("materialId", getMaterialId())
                .append("planId", getPlanId())
                .append("planQuantity", getPlanQuantity())
                .append("completedCount", getCompletedCount())
                .append("decomposableCount", getDecomposableCount())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("editedBy", getEditedBy())
                .append("editedTime", getEditedTime())
                .append("isDeleted", getIsDeleted())
                .append("note", getNote())
                .toString();
    }
}
